import { IPSAppCounterRef } from '../../app/control/ipsapp-counter-ref';
import { IPSTabExpPage } from '../expbar/ipstab-exp-page';
import { IPSDEViewPanel } from './ipsdeview-panel';
import { IPSDERBase } from '../../dataentity/der/ipsderbase';
import { IPSDEOPPriv } from '../../dataentity/priv/ipsdeoppriv';
import { IPSSysImage } from '../../res/ipssys-image';

/**
 *
 * 子接口类型识别属性[]
 * 继承父接口类型值[TABVIEWPANEL]
 * @export
 * @interface IPSDETabViewPanel
 */
export interface IPSDETabViewPanel extends IPSDEViewPanel, IPSTabExpPage {
  /**
   * 计数器标识
   * @type {string}
   */
  counterId: string;

  /**
   * 导航过滤项
   * @type {string}
   */
  navFilter: string;

  /**
   * 导航关系对象
   *
   * @type {IPSDERBase}
   */
  getNavPSDER(): IPSDERBase | null;

  /**
   * 导航关系对象
   *
   * @type {IPSDERBase}
   */
  get navPSDER(): IPSDERBase | null;

  /**
   * 导航关系对象（必须存在）
   *
   * @type {IPSDERBase}
   */
  getNavPSDERMust(): IPSDERBase;

  /**
   * 应用计数器引用
   *
   * @type {IPSAppCounterRef}
   */
  getPSAppCounterRef(): IPSAppCounterRef | null;

  /**
   * 应用计数器引用
   *
   * @type {IPSAppCounterRef}
   */
  get psAppCounterRef(): IPSAppCounterRef | null;

  /**
   * 应用计数器引用（必须存在）
   *
   * @type {IPSAppCounterRef}
   */
  getPSAppCounterRefMust(): IPSAppCounterRef;

  /**
   * 访问操作标识
   *
   * @type {IPSDEOPPriv}
   */
  getPSDEOPPriv(): IPSDEOPPriv | null;

  /**
   * 访问操作标识
   *
   * @type {IPSDEOPPriv}
   */
  get psDEOPPriv(): IPSDEOPPriv | null;

  /**
   * 访问操作标识（必须存在）
   *
   * @type {IPSDEOPPriv}
   */
  getPSDEOPPrivMust(): IPSDEOPPriv;

  /**
   * 标题图标
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 标题图标
   *
   * @type {IPSSysImage}
   */
  get psSysImage(): IPSSysImage | null;

  /**
   * 标题图标（必须存在）
   *
   * @type {IPSSysImage}
   */
  getPSSysImageMust(): IPSSysImage;
}
